/*
 * GUIObjectFactory.h
 *
 *  Created on: 09/11/2009
 *      Author: marcos
 */

#ifndef GUIOBJECTFACTORY_H_
#define GUIOBJECTFACTORY_H_

#include "map/MapLocation.h"
#include "map/RoadSegment.h"
#include "map/Intersection.h"
#include "gui/objects/GUIObject.h"

namespace gui {

class GUIObjectFactory {
public:
	GUIObjectFactory();
	virtual ~GUIObjectFactory();
	GUIObject* createGUIMapLocation(MapLocation* mapLocation);
	GUIObject* createGUIBaseSegment(RoadSegment* roadSegment);
	GUIObject* createGUIRoadSegment(RoadSegment* roadSegment);
	GUIObject* createGUIRoadArrow(RoadSegment* roadSegment);
	GUIObject* createGUIRouteSegment(Intersection* origin, Intersection* destination, double width);
	GUIObject* createGUIRouteArrow(Intersection* origin, Intersection* destination, double width);
	GUIObject* createGUIIntersection(Intersection* intersection, RoadType type);
	GUIObject* createGUIRouteIntersection(Intersection* intersection);
};

}

#endif /* GUIOBJECTFACTORY_H_ */
